#include "fensaisietypecours.h"
#include "ui_fensaisietypecours.h"


FenSaisieTypeCours::FenSaisieTypeCours(QWidget *parent) :
    QDialog(parent)

{
    setupUi(this);

    QObject::connect(buttonBox,SIGNAL(accepted()),this,SLOT(BtnOK()));
    QObject::connect(buttonBox,SIGNAL(rejected()),this,SLOT(BtnCancel()));

}
FenSaisieTypeCours::~FenSaisieTypeCours()
{
    delete this;
}
void FenSaisieTypeCours::SetData(ListeTypeCours &listeTypeCours, bool modifierTypeCours, int indexTypeCours, TypeCours typeCours)
{
    m_listeTypeCours = &listeTypeCours;
    ModeSaisie = modifierTypeCours;

    if (ModeSaisie)
        ModifierTypeCoursIsON(indexTypeCours, typeCours);
}

void FenSaisieTypeCours::BtnOK()
{
    if (durESpinBox->value() > 0 && nombreDLVesSpinBox->value() > 0 && tarifDoubleSpinBox->value() > 0 && partProfDoubleSpinBox->value() > 0 && partAssoDoubleSpinBox->value())
    {

        TypeCours tc1(durESpinBox->value(),nombreDLVesSpinBox->value(),tarifDoubleSpinBox->value(),partProfDoubleSpinBox->value(),partAssoDoubleSpinBox->value());
        if (ModeSaisie)
        {
            if (m_listeTypeCours->count() > LIndex)
                m_listeTypeCours->replace(LIndex,tc1);
//            emit modifierMonTypeCours(tc1, LIndex);
        }
        else
        {
            if (!m_listeTypeCours->contains(tc1))
            {
                m_listeTypeCours->append(tc1);
            }
            else
            {
                QMessageBox::information(NULL,ERREUR, CETYPEDECOURSEXISTEDEJA);
                return;
            }
        }
    }
    else
    {
        QMessageBox::information(NULL,ERREUR, VOUSNAVEZPASSAISITOUTESLESDONNEESREQUISES);
        return;
    }

    this->close();
}
void FenSaisieTypeCours::BtnCancel()
{
    this->close();

}
void FenSaisieTypeCours::ModifierTypeCoursIsON(int monindex, TypeCours tpc)
{
    durESpinBox->setValue(tpc.getDuree());
    nombreDLVesSpinBox->setValue(tpc.getNbEleves());
    tarifDoubleSpinBox->setValue(tpc.getTarif());
    partProfDoubleSpinBox->setValue(tpc.getPartProf());
    partAssoDoubleSpinBox->setValue(tpc.getPartAsso());

    LIndex = monindex;

    durESpinBox->setReadOnly(ModeSaisie);
    nombreDLVesSpinBox->setReadOnly(ModeSaisie);
}

void FenSaisieTypeCours::on_tarifDoubleSpinBox_valueChanged(double d)
{
    float PartAsso = d - partProfDoubleSpinBox->value();
    partAssoDoubleSpinBox->setValue(PartAsso);

}
void FenSaisieTypeCours::on_partProfDoubleSpinBox_valueChanged(double d)
{
    float PartAsso = tarifDoubleSpinBox->value() - d;
    partAssoDoubleSpinBox->setValue(PartAsso);

}
